home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat7 / sad.z / sad
Encoding:
Text File  |  2002-10-03  |  14.9 KB  |  195 lines

  1.  
  2.  
  3.  
  4. ssssaaaadddd((((7777))))                                                                  ssssaaaadddd((((7777))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _ssss_aaaa_dddd - STREAMS Administrative Driver
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_cccc_oooo_nnnn_ffff_...._hhhh_>>>>
  14.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_aaaa_dddd_...._hhhh_>>>>
  15.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_oooo_pppp_tttt_ssss_...._hhhh_>>>>
  16.      _iiii_nnnn_tttt _iiii_oooo_cccc_tttt_llll _((((_iiii_nnnn_tttt _f_i_l_d_e_s_,,,, _iiii_nnnn_tttt _c_o_m_m_a_n_d_,,,, _.... _.... _.... _////_**** _a_r_g _****_////_))))_;;;;
  17.  
  18. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      The STREAMS Administrative Driver provides an interface for applications
  20.      to perform administrative operations on STREAMS modules and drivers.  The
  21.      interface is provided through _iiii_oooo_cccc_tttt_llll(2) commands.  Privileged operations
  22.      may access the _ssss_aaaa_dddd driver via _////_dddd_eeee_vvvv_////_ssss_aaaa_dddd_////_aaaa_dddd_mmmm_iiii_nnnn.  Unprivileged operations
  23.      may access the _ssss_aaaa_dddd driver via _////_dddd_eeee_vvvv_////_ssss_aaaa_dddd_////_uuuu_ssss_eeee_rrrr.
  24.  
  25.      _f_i_l_d_e_s is an open file descriptor that refers to the _ssss_aaaa_dddd driver.  _c_o_m_m_a_n_d
  26.      determines the control function to be performed as described below.  _a_r_g
  27.      represents additional information that is needed by this command.  The
  28.      type of _a_r_g depends upon the command, but it is generally an integer or a
  29.      pointer to a _c_o_m_m_a_n_d-specific data structure.
  30.  
  31.    CCCCoooommmmmmmmaaaannnnddddssss
  32.      The autopush facility [see _aaaa_uuuu_tttt_oooo_pppp_uuuu_ssss_hhhh(1M)] allows one to configure a list
  33.      of modules to be automatically pushed on a stream when a driver is first
  34.      opened.  Autopush is controlled by the next commands.
  35.  
  36.      _SSSS_AAAA_DDDD______SSSS_AAAA_PPPP      Allows the administrator to configure the autopush
  37.                   information for the given device.  _a_r_g points to a _ssss_tttt_rrrr_aaaa_pppp_uuuu_ssss_hhhh
  38.                   structure which contains the following members:
  39.                           _uuuu_iiii_nnnn_tttt   _ssss_aaaa_pppp______cccc_mmmm_dddd_;;;;
  40.                           _llll_oooo_nnnn_gggg   _ssss_aaaa_pppp______mmmm_aaaa_jjjj_oooo_rrrr_;;;;
  41.                           _llll_oooo_nnnn_gggg   _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr_;;;;
  42.                           _llll_oooo_nnnn_gggg   _ssss_aaaa_pppp______llll_aaaa_ssss_tttt_mmmm_iiii_nnnn_oooo_rrrr_;;;;
  43.                           _llll_oooo_nnnn_gggg   _ssss_aaaa_pppp______nnnn_pppp_uuuu_ssss_hhhh_;;;;
  44.                           _uuuu_iiii_nnnn_tttt   _ssss_aaaa_pppp______llll_iiii_ssss_tttt_[[[[_MMMM_AAAA_XXXX_AAAA_PPPP_UUUU_SSSS_HHHH_]]]] _[[[[_FFFF_MMMM_NNNN_AAAA_MMMM_EEEE_SSSS_ZZZZ _++++ _1111_]]]]_;;;;
  45.                   The _ssss_aaaa_pppp______cccc_mmmm_dddd field indicates the type of configuration being
  46.                   done.  It may take on one of the following values:
  47.  
  48.                   _SSSS_AAAA_PPPP______OOOO_NNNN_EEEE      Configure one minor device of a driver.
  49.  
  50.                   _SSSS_AAAA_PPPP______RRRR_AAAA_NNNN_GGGG_EEEE    Configure a range of minor devices of a driver.
  51.  
  52.                   _SSSS_AAAA_PPPP______AAAA_LLLL_LLLL      Configure all minor devices of a driver.
  53.  
  54.                   _SSSS_AAAA_PPPP______CCCC_LLLL_EEEE_AAAA_RRRR    Undo configuration information for a driver.
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                                                         PPPPaaaaggggeeee 1111
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. ssssaaaadddd((((7777))))                                                                  ssssaaaadddd((((7777))))
  68.  
  69.  
  70.  
  71.                   The _ssss_aaaa_pppp______mmmm_aaaa_jjjj_oooo_rrrr field is the major device number of the device
  72.                   to be configured.  The _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr field is the minor device
  73.                   number of the device to be configured.  The _ssss_aaaa_pppp______llll_aaaa_ssss_tttt_mmmm_iiii_nnnn_oooo_rrrr
  74.                   field is used only with the _SSSS_AAAA_PPPP______RRRR_AAAA_NNNN_GGGG_EEEE command, with which a
  75.                   range of minor devices between _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr and _ssss_aaaa_pppp______llll_aaaa_ssss_tttt_mmmm_iiii_nnnn_oooo_rrrr,
  76.                   inclusive, are to be configured.  The minor fields have no
  77.                   meaning for the _SSSS_AAAA_PPPP______AAAA_LLLL_LLLL command.  The _ssss_aaaa_pppp______nnnn_pppp_uuuu_ssss_hhhh field
  78.                   indicates the number of modules to be automatically pushed
  79.                   when the device is opened.  It must be less than or equal to
  80.                   _MMMM_AAAA_XXXX_AAAA_PPPP_UUUU_SSSS_HHHH, defined in _ssss_aaaa_dddd_...._hhhh.  It must also be less than or
  81.                   equal to _NNNN_SSSS_TTTT_RRRR_PPPP_UUUU_SSSS_HHHH, the maximum number of modules that can be
  82.                   pushed on a stream, defined in the kernel master file.  The
  83.                   field _ssss_aaaa_pppp______llll_iiii_ssss_tttt is an array of module names to be pushed in
  84.                   the order in which they appear in the list.
  85.  
  86.                   When using the _SSSS_AAAA_PPPP______CCCC_LLLL_EEEE_AAAA_RRRR command, the user sets only
  87.                   _ssss_aaaa_pppp______mmmm_aaaa_jjjj_oooo_rrrr and _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr.  This will undo the configuration
  88.                   information for any of the other commands.  If a previous
  89.                   entry was configured as _SSSS_AAAA_PPPP______AAAA_LLLL_LLLL_,,,, _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr should be set to
  90.                   zero.  If a previous entry was configured as _SSSS_AAAA_PPPP______RRRR_AAAA_NNNN_GGGG_EEEE_,,,,
  91.                   _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr should be set to the lowest minor device number in
  92.                   the range configured.
  93.  
  94.                   On failure, _eeee_rrrr_rrrr_nnnn_oooo is set to the following value:
  95.  
  96.                   _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT       _a_r_g points outside the allocated address space.
  97.  
  98.                   _EEEE_IIII_NNNN_VVVV_AAAA_LLLL       The major device number is invalid, the number
  99.                                of modules is invalid, or the list of module
  100.                                names is invalid.
  101.  
  102.                   _EEEE_NNNN_OOOO_SSSS_TTTT_RRRR       The major device number does not represent a
  103.                                STREAMS driver.
  104.  
  105.                   _EEEE_EEEE_XXXX_IIII_SSSS_TTTT       The major-minor device pair is already
  106.                                configured.
  107.  
  108.                   _EEEE_RRRR_AAAA_NNNN_GGGG_EEEE       The command is _SSSS_AAAA_PPPP______RRRR_AAAA_NNNN_GGGG_EEEE and _ssss_aaaa_pppp______llll_aaaa_ssss_tttt_mmmm_iiii_nnnn_oooo_rrrr is
  109.                                not greater than _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr, or the command is
  110.                                _SSSS_AAAA_PPPP______CCCC_LLLL_EEEE_AAAA_RRRR and _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr is not equal to the
  111.                                first minor in the range.
  112.  
  113.                   _EEEE_NNNN_OOOO_DDDD_EEEE_VVVV       The command is _SSSS_AAAA_PPPP______CCCC_LLLL_EEEE_AAAA_RRRR and the device is not
  114.                                configured for autopush.
  115.  
  116.                   _EEEE_NNNN_OOOO_SSSS_RRRR        An internal autopush data structure cannot be
  117.                                allocated.
  118.  
  119.      _SSSS_AAAA_DDDD______GGGG_AAAA_PPPP      Allows any user to query the _ssss_aaaa_dddd driver to get the autopush
  120.                   configuration information for a given device.  _a_r_g points to
  121.                   a _ssss_tttt_rrrr_aaaa_pppp_uuuu_ssss_hhhh structure as described in the previous command.
  122.  
  123.  
  124.  
  125.  
  126.                                                                         PPPPaaaaggggeeee 2222
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. ssssaaaadddd((((7777))))                                                                  ssssaaaadddd((((7777))))
  134.  
  135.  
  136.  
  137.                   The user should set the _ssss_aaaa_pppp______mmmm_aaaa_jjjj_oooo_rrrr and _ssss_aaaa_pppp______mmmm_iiii_nnnn_oooo_rrrr fields of
  138.                   the _ssss_tttt_rrrr_aaaa_pppp_uuuu_ssss_hhhh structure to the major and minor device
  139.                   numbers, respectively, of the device in question.  On
  140.                   return, the _ssss_tttt_rrrr_aaaa_pppp_uuuu_ssss_hhhh structure will be filled in with the
  141.                   entire information used to configure the device.  Unused
  142.                   entries in the module list will be zero-filled.
  143.  
  144.                   On failure, _eeee_rrrr_rrrr_nnnn_oooo is set to one of the following values:
  145.  
  146.                   _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT       _a_r_g points outside the allocated address space.
  147.  
  148.                   _EEEE_IIII_NNNN_VVVV_AAAA_LLLL       The major device number is invalid.
  149.  
  150.                   _EEEE_NNNN_OOOO_SSSS_TTTT_RRRR       The major device number does not represent a
  151.                                STREAMS driver.
  152.  
  153.                   _EEEE_NNNN_OOOO_DDDD_EEEE_VVVV       The device is not configured for autopush.
  154.  
  155.      _SSSS_AAAA_DDDD______VVVV_MMMM_LLLL      Allows any user to validate a list of modules (for example,
  156.                   to see if they are installed on the system).  _a_r_g is a
  157.                   pointer to a _ssss_tttt_rrrr______llll_iiii_ssss_tttt structure with the following members:
  158.                           _iiii_nnnn_tttt                _ssss_llll______nnnn_mmmm_oooo_dddd_ssss_;;;;
  159.                           _ssss_tttt_rrrr_uuuu_cccc_tttt _ssss_tttt_rrrr______mmmm_llll_iiii_ssss_tttt   _****_ssss_llll______mmmm_oooo_dddd_llll_iiii_ssss_tttt_;;;;
  160.                   The _ssss_tttt_rrrr______mmmm_llll_iiii_ssss_tttt structure has the following member:
  161.                           _cccc_hhhh_aaaa_rrrr    _llll______nnnn_aaaa_mmmm_eeee_[[[[_FFFF_MMMM_NNNN_AAAA_MMMM_EEEE_SSSS_ZZZZ_++++_1111_]]]]_;;;;
  162.                   _ssss_llll______nnnn_mmmm_oooo_dddd_ssss indicates the number of entries the user has
  163.                   allocated in the array and _ssss_llll______mmmm_oooo_dddd_llll_iiii_ssss_tttt points to the array of
  164.                   module names.  The return value is _0000 if the list is valid, _1111
  165.                   if the list contains an invalid module name, or _----_1111 on
  166.                   failure.  On failure, _eeee_rrrr_rrrr_nnnn_oooo is set to one of the following
  167.                   values:
  168.  
  169.                   _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT       _a_r_g points outside the allocated address space.
  170.  
  171.                   _EEEE_IIII_NNNN_VVVV_AAAA_LLLL       The _ssss_llll______nnnn_mmmm_oooo_dddd_ssss field of the _ssss_tttt_rrrr______llll_iiii_ssss_tttt structure is
  172.                                less than or equal to zero.
  173.  
  174. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  175.      _iiii_nnnn_tttt_rrrr_oooo(2), _iiii_oooo_cccc_tttt_llll(2), _oooo_pppp_eeee_nnnn(2)
  176.  
  177. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  178.      Unless specified otherwise above, the return value from _iiii_oooo_cccc_tttt_llll is _0000 upon
  179.      success and _----_1111 upon failure with _eeee_rrrr_rrrr_nnnn_oooo set as indicated.
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.                                                                         PPPPaaaaggggeeee 3333
  191.  
  192.  
  193.  
  194.